People are utilizing computing devices to perform an increasing variety of tasks. For example, portable computing devices such as tablet computers and smart phones are being used to take high quality pictures, record audio and video, and interface with various other devices. Further, additional types of input are being utilized, such as motion or touch input, which require specific sensors or components. In many instances, particularly for portable devices that have a limited form factor, it is not possible to include all the possible components and functionality that various users might want without significantly increasing the size and cost of the computing device. Further, for portable and mobile devices with limited battery life, operating such a large number of components can provide an unnecessary drain on the battery. Further still, the resource requirements (such as processing capacity and bandwidth) to support such a large number of components can be significant, which can negatively impact the performance of a device, particularly small portable devices with limited processing capability.